home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1998 July
/
EnigmA AMIGA RUN 29 (1998)(G.R. Edizioni)(IT)[!][issue 1998-07 & 08].iso
/
recent
/
iib122.lha
/
IIB
/
Threads
/
Boolean_Texture
< prev
next >
Wrap
Internet Message Format
|
1998-03-02
|
10KB
Date: Mon, 23 Feb 1998 13:08:30 -0500
From: "Ian M. Smith" <iansmith@ncinter.net>
Subject: [IML] IFW: Boolean Texture Alpha
After thinking about it on and off for some months, I finally tried
creating a Boolean texture this last weekend with limited success, and
thought I would post here before putting any more work into it. Basicly,
it lets you use Subtractive objects to chop parts of a normal object away.
It also fills in the edges of holes it makes, so if you take a solid
sphere and stick a subtractive tube through it, you get a tunnel through
the sphere and not just two holes in a hollow sphere.
The good news it that it works great in scanline or raytrace with multiple
light sources, correctly handles reflections and glass and lets you use
multiple subtractive and additive objects for your cookie cutting.
The bad news is shadow casting lights do... strange things. The texture
can not curently handle Imagine's reverse casting for shadowing.
The texture works by applying the Bool texture to a group of objects you
wish to affect, and then selecting either Additive or Subtractive for each
object. You can use say, a closed tube to cut through a pair of infinite
ground objects to put a hole complete with sides through it. It does
handle multiple additive and subtractive objects, so if your cookie-cutter
is made up of several intersecting objects it joins them together instead
of cutting chunks out of the cookie-cutters themselves. If that makes any
sense at all.
For building an object I have found that it is easier to just use the
Imagine slice command, but where I have found it of great use is with
animations, where you can dynamically move a subtractive object around to
do interesting things. Makes for some nice 'flying logo' type anims.
Anyone interested in seeing a fully working version that handles shadows
correctly? I am not sure it's even possible to do this, as I don't think
the information I need is included in the texture interface. Basicly I
need to know if a light ray is being used for rendering or shadow casting.
If there is interest I'll try and figure out a way around it, but don't
feel like banging my head against it if nobody wants it anyway. :-)
Date: Mon, 23 Feb 1998 17:15:35 -0500
From: Pat Connelly <pconnelly@EMAIL.MSN.COM>
I think boolean objects would be a great tool and I am interested.
If anyone wants to alpha-test it and give me some feedback you can view
some example images and anims at the following URL. The page above it has
my other IFW textures, including a numerical/time counter texture. There
are example images and an animation there as well. I'd really like to
know if anyone can duplicate the anim without using the Bool texture... I
can't think of any other way to do that sort of effect.
http://www.ian.org/IIWTextures/BetaBool.html
--------------------------------------------
Date: Mon, 23 Feb 1998 17:15:35 -0500
From: Pat Connelly <pconnelly@EMAIL.MSN.COM>
Your animation is very slick indeed. I think I know how you did it with
your texture. I am sure someone on the list can do it without a boolean
object as there are always multiple ways to skin a cat. Charles, are you
listening? I will play with your texture as soon as I get a chance.
I seem to always be doing 5 things at once. Also, your textures will be
added to the tutorial list.
This is an alpha release because not only is it not finished, it doesn't
handle shadows, and I may totally re-write it if I figure out a better
way. (Did that twice already)
Quick instructions:
First, I have no idea how to tell if a ray is a new ray from the camera,
or a result of a reflected or transparent object hit. So you need to use
an object with a Bool texture set to "Reset". That tells the texture that
it should start all it's calculations over. Otherwise when a ray heads
off to infinity after passing through a boolean texture, it doesn't keep
it's attributes when the next ray is cast. In scanline, you can just add
a CSG sphere set to Reset around the camera. In raytrace, to handle
reflections and viewing your object through refractive objects correctly
you need to enclose your booleaned objects with a Reset object, making
sure it does NOT intersect any of the boolean objects in the process and
the camera is outside the Reset object.
To create a boolean object, you have to apply the Bool texture to all the
objects you want affected. There are two settings, an Additive setting
and a Subtractive setting. Applying Additive to an object does nothing
visible to it, but simply tells the texture that this object can have
pieces cut from it. Applying Subtractive to an object makes it invisible,
and any part of a Subtractive object inside it is cut away.
Limitations and potential problems: Shadows. Don't try it, it's ugly.
Also make sure to crank up the Resolve Depth, as a complex object can end
up having a lot of invisible faces a ray needs to pass through. Also
watch the crawling-ants effect you get when two faces share the exact same
plane.
Thats about it. Oh, coloring. When Imagine renders a hole that was cut
with a Subtractive object, the surface the ray is hitting is the
Subtractive object. The Bool texture remembers though which Additive
object it is inside, so it can color it correctly. Unfortunately this
does not always work well for a textured object, as the color it chooses
is the color of the point it first enters the Additive object. You can
fix this by turning of this feature and having the inner surface the
natural color and texture of the Additive object. There is a checkbox for
this.
HEY, MIKE H!
I would love to see boolean objects in Imagine. Writing it into the
software would work well, as you have access to everything. You could
eliminate the need for everything but a "Subtractive" checkbox somewhere
in object properties. All that would be needed is to have Imagine check
for boolean faces before normal ones, and to allow a ray to hit all the
faces in 'stack' at one spot instead of picking one and skipping the rest.
It could even do a better job than mine for cutting into objects with
textures, as it could grab the texture data for an object which I can't
do.
Anyway, sorry for any confusing stuff in there.. I don't write
instructions well. Feel free to ask for any clarifications if I got
anybody confused. Also in beta is a texture that fades in a solid color
at a certain distance fom the camera to eliminate the moire effect. It is
done, just needs docs.
----------------------------------
Date: Mon, 23 Feb 1998 17:46:15 -0500
From: "Ian M. Smith" <iansmith@NCINTER.NET>
On Mon, 23 Feb 1998, Pat Connelly wrote:
> Also, your textures will be added to the tutorial list.
Cool, thanks.
I can think of one way to duplicate the effect, but it involves using the
Slice command repeatidly and saving an object for each frame. An
easier method escapes me, but I'd love to hear of one as it would be
one more trick to learn. :-)
----------------------------------
Date: Wed, 25 Feb 1998 15:04:14 -0500
From: Charles Blaquiere <blaq@INTERLOG.COM>
Ian, your Boolean texture is tantalizing! It brings to mind truly exciting
animated effects. Why, my BVRE is busy rendering lovely techno animations,
using just cubes! (A bunch of cubes, all parented to the same axis. Give
each of them a different motion through the same space, using two
keyframed states. Whenever these invisible cubes start to intersect,
you'll see rectilinear, irregular shapes start to grow, evolve, and
disappear. Techno eye candy done in less than 5 minutes!)
[voice of Pinky:] Oh, no... no... wait. But Brain, doesn't this require an
XOR effect to leave the cubes invisible until they intersect?
[Brain:] Pinky, your capacity for stating the obvious never ceases to
amaze me. Of course the texture will need an XOR mode, in addition to the
"additive" and "negative" options currently available. We'll have to ask
Ian whether he can easily incorporate this suggestion into his texture.
But that will have to wait until the night after tomorrow.
----------------------------------
Date: Wed, 25 Feb 1998 19:09:22 -0500
From: "Ian M. Smith" <iansmith@ncinter.net>
Got to run now, so can't post a long message.. but I liked your suggestion
and have built a new version you can try out. It has a new type called
AND which does close to what you want. It's not XOR, but should have the
same effect. If you can think of something XOR could do that AND can't,
I'll try and add it too. :-)
I'll post later in more detail when I have more time.
http://www.ian.org/BetaBool.html
----------------------------------
Date: Sun, 22 Feb 1998 19:13:07 -0600
From: "Stephen G." <sgiff@AIRMAIL.NET>
Your link does not work nor does the link on your Betabool page.
http://www.ian.org/IIWTextures/BetaBool.zip
----------------------------------
Date: Wed, 25 Feb 1998 21:38:47 -0500
From: "Ian M. Smith" <iansmith@NCINTER.NET>
DOH! :-)
I had the file nameed wrong and gave the wrong URL to boot! That will
teach me to rush posting.
Ahem: www.ian.org/IIWTextures/BetaBool.html
----------------------------------
Date: Fri, 27 Feb 1998 06:03:22 -0500
From: "Ian M. Smith" <iansmith@NCINTER.NET>
There is a new release of IIWBool on my web site. You can now download
it and docs at: http://www.ian.org/IIWTextures/Bool/
What has been added? A few bug fixes, mostly relating to transparent
objects so they look somewhat better now. A minor speed increase. And a
better way of handling intersecting solids with an option to turn it off.
The Boolean texture now handles all objects with the texture as solid.
This means if you have several transparent objects that intersect,
internal edges are cut out. There is a better explination and pictures on
the above web page.
Shadows are still non-functional.
----------------------------------